# 99乘法表的实现


# for.....in 循环
for row in range(1,10): # 建立一个从1开始到9终止，步长为1的行 row
    for col in range(1, row+1): # 建立一个从1开始到行数终止，步长为1的列 col
        print('{}*{}={:<3}'.format(col,row,row*col),end=' ') # format按顺序在{}中填充字符串，{:<3}表示第三个{}中的数据从左占用三位
    print('') # 实现一行结束后换行的功能

print('='*70)

for row in range(9,0,-1): # 建立一个从9开始到1终止，步长为-1的行 row
    for col in range(1, row+1): # 建立一个从1开始到行数终止，步长为1的列 col
        print('{}*{}={:<3}'.format(col,row,row*col),end=' ')
    print('')

print('='*70)

for row in range(1,10): # 建立一个从1开始到9终止，步长为1的行 row
    for col in range(1,10): # 建立一个从1开始到9终止，步长为1的列 col
        if 10-col>row: # 由于列总数为9列，从第col>9-row开始显示，则col<=9-row时不显示=>col<10-row时不显示
            print(' '*7,end=' ')
        else:
            print('{}*{}={:<3}'.format(10-col,row,row*(10-col)),end=' ') # format按顺序在{}中填充字符串，{:<3}表示第三个{}中的数据从左占用三位
    print('') # 实现一行结束后换行的功能

print('='*70)

for row in range(1,10): # 建立一个从1开始到9终止，步长为1的行 row
    for col in range(1,10): # 建立一个从1开始到9终止，步长为1的列 col
        if col<row: # 列数小于行数的时候不显示，大于等于行数时开始显示
            print(' '*7,end=' ')
        else:
            print('{}*{}={:<3}'.format(10-col,10-row,(10-row)*(10-col)),end=' ')
    print('') # 实现一行结束后换行的功能

print('='*70)


# while 循环
i = 1 # 设置初始行i=1
while i < 10: # 当行数大于等于10的时候循环终止
    j = 1 # 在行循环内 设置初始列 j = 1
    while j < 10: # 当列数大于等于10的时候循环终止，并将i+1重新赋值给i
        if j > i: # 如果列数大于行数，则输出空值并使将j+1重新赋值给j，如果列数小于等于行数，则输出算式
            print(' ' * 7, end=' ')
        else:
            print('{}*{}={:<3}'.format(j,i,j*i),end=' ')
        j = j+1
    print('')
    i= i+1
print('='*70)

i = 1 # 设置初始行i=1
while i < 10: # 当行数大于等于10的时候循环终止
    j = 1 # 在行循环内 设置初始列 j = 1
    while j < 10: # 当列数大于等于10的时候循环终止，并将i+1重新赋值给i
        if j > 10-i: # 如果列数大于10-I，则输出空值并使将j+1重新赋值给j，如果列数小于等于行数，则输出算式
            print(' ' * 7, end=' ')
        else:
            print('{}*{}={:<3}'.format(j,10-i,j*(10-i)),end=' ')
        j = j+1
    print('')
    i= i+1
print('='*70)

i = 1 # 设置初始行i=1
while i < 10: # 当行数大于等于10的时候循环终止
    j = 1 # 在行循环内 设置初始列 j = 1
    while j < 10: # 当列数大于等于10的时候循环终止，并将i+1重新赋值给i
        if j < 10-i: # 如果列数小于10-i，则输出空值并使将j+1重新赋值给j，否则输出算式
            print(' ' * 7, end=' ')
        else:
            print('{}*{}={:<3}'.format(10-j,i,(10-j)*i),end=' ')
        j = j+1
    print('')
    i= i+1
print('='*70)

i = 1 # 设置初始行i=1
while i < 10: # 当行数大于等于10的时候循环终止
    j = 1 # 在行循环内 设置初始列 j = 1
    while j < 10: # 当列数大于等于10的时候循环终止，并将i+1重新赋值给i
        if j < i: # 如果列数小于行数，则输出空值并使将j+1重新赋值给j，否则输出算式
            print(' ' * 7, end=' ')
        else:
            print('{}*{}={:<3}'.format(10-j,10-i,(10-j)*(10-i)),end=' ')
        j = j+1
    print('')
    i= i+1
print('='*70)
